Optical disc buffer under-run handling method

ABSTRACT

A method for handling buffer under-runs during the recording of files to an optical disc is provided. The method includes reserving a track for recording a file system associated with recording of one or more files on the optical disc. Then, the method moves to record the one or more files onto the optical disc in a track that logically follows the reserved track. In case of a buffer under-run, the method proceeds to close a current track and begin a following track after a gap, thus inserting a gap for each buffer under-run. Path tables and directory descriptors of the file system are then written after recording the one or more files. A volume descriptor sequence of the file system is recorded in the reserved track at a time after recording the path tables and the directory descriptor. The file system can also be as defined in the Joliet standard and the UDF standards.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is related to U.S. patent application Ser. No.09/448,030 (Attorney Docket No. ADAPP122A), filed on the same day as theinstant application and entitled “METHOD FOR HANDLING BUFFER UNDER-RUNDURING DISC RECORDING.” This application is hereby incorporated byreference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to the recording of data ontooptical discs, and more particularly to a method for handling bufferunder-runs during recording sessions.

2. Description of the Related Art

Optical disc storage of data offers relatively high capacity datastorage (e.g., approximately 640 Megabytes) on a relatively small andinexpensive optical disc. Optical disc recording commonly involvesrecording (sometimes referred to as “burning”) several files of data onone or more spiral tracks on a optical disc, which can typically holdbetween 1 and 99 tracks. A file system (FS) is typically recorded at thebeginning of a session and contains addressing information for thefiles, such as a volume descriptor sequence with address pointers topath tables indicating the file directory structure, and a directorydescriptor indicating the file locations and logical block numbers. Thevolume descriptor sequence by convention (and in compliance with ISOstandard 9660) is located in sector 16 (and sectors following sector 16if needed) of the first track of a recording session. The ISO 9660Specification (also referred to as the Information Processing-Volume andFile Structure of CD-ROM for Information Interchange) is herebyincorporated by reference.

When recording is desired, files of data to be recorded are typicallyretrieved from a hard disk drive, transferred to a faster access buffermemory, and the files on the buffer memory are continuously recordedonto one or more tracks of an optical disc during a recording session.However, as recording rates for optical discs increase beyond 4× (1×being defined as normal music playback speed), the rate of recordingonto the optical disc frequently exceeds the rate at which the harddrive data source can replenish data in the buffer memory. A bufferunder-run occurs when the buffer memory is unable to continuouslyprovide data for an uninterrupted recording of the files to a giventrack of the optical disc. Eventually, after the buffer under-runoccurs, the burn stops. Typically, there is a pre-gap of 150 sectors anda post-gap of 150 sectors for a total gap of 300 sectors (approximately700 kilobytes) between the end of one track and the beginning of anothertrack. This gap between tracks causes file addressing problems, sincethe new addresses of the remaining files (which were recorded after thebuffer under-run) are not accurately reflected in the FS recorded at thebeginning of the session. As such, when a read of a particular file thatwas recorded after the buffer under-run is desired, the reading willaccess an incorrect file due to the gap. Furthermore, multiple bufferunder-runs can occur during a recording session, depending on the accessspeed and transfer speed of the data retrieval from the hard drive datasource, the size and read/write speed of the buffer memory, and the datatransmission rate required for continuously recording data onto theoptical disc.

The consequences of one or more buffer under-runs during a recording onan optical disc depend on the type of optical disc used during therecording. A CD-R optical disc can only undergo one recording, and theinaccessible remaining files typically cause the CD-R optical disc to bescrapped and replaced by a fresh CD-R optical disc for a repeatedrecording. A CD-R/W optical disc can undergo several recordings, sincethe optical disc can be erased and the recording session can berepeated. However, the repeating recording sessions can takeconsiderable time, especially if the recording is of a large track.Furthermore, regardless of whether the optical disc is CD-R or CD-R/W,another buffer under-run can occur during the repeated recordingsession, causing the loss of the time spent on the recording session, ifnot the entire optical disc (in the case of CDR optical discs).

FIG. 1A shows a prior art track 100 on an optical disc resulting from arecording session in which a buffer under-run has occurred. The filesystem (FS) 102 is recorded at the beginning of the track (whichrepresents the beginning of a session) and then the data 104 recordingfollows, until stopped by the buffer under-run 106. The dotted linesindicate a missing remainder 108 of the data that would have beenrecorded in the track 100 if the buffer under-run had not occurred.

FIG. 1B shows a prior art track 100 on an optical disc resulting from arecording session in which a buffer under-run 106 has occurred, and theresulting difference created between a file address and the actual fileaddress as the result of the buffer under-run. The FS 102 is recorded atthe beginning of the track, and then the data 104 recording follows,until stopped by the buffer under-run 106. The remainder of the data 108is recorded in track 2 after the buffer under-run 106. The FS 102, whichwas recorded before the buffer under-run 106 occurred, points to theaddress 112 represented as file N′, shown by dotted lines. The FS 102address assumes that the file N′ is located in the first track 100,which is incorrect. The actual address 114 of file N, shown by solidlines, is in the second track 110 as a result of the buffer under-run106.

Thus, the occurrence of a buffer under-run causes several problems inconventional recording systems. The recording of a track of one or morefiles is stopped, and a physical gap is created between the originaltrack and a new track of remaining files recorded after the bufferunder-run. The addresses of files recorded after a buffer under-run donot correspond to the addresses for the files as indicated by the FSthat was recorded before the buffer under-run, because of the gapbetween the original track and the next track which records theremaining files. Since the addresses of the files recorded after abuffer under-run are incorrect, the entire recording must be repeated onanother disc if the disc cannot be erased and rewritten. Otherwise, ifthe same disc can be erased and rewritten (e.g., CD R/W), the tracksmade during the interrupted recording session must be erased andre-recorded. Additional time and cost is required by the duplicaterecording session as a result of the buffer under-run in either case.

In view of the foregoing, there is a need for a method that can handlebuffer under-runs during a recording session on an optical disc. Thismethod should be configured to avoid the problems of the prior art.

SUMMARY OF THE INVENTION

The present invention fills these needs by providing methods that canhandle buffer under-runs during a recording session on an optical disc.The invention is a method for maintaining the addressing accuracy of thefile system of a recording session, regardless of multiple bufferunder-runs that may occur during the recording session. The presentinvention can be implemented in numerous ways, including as a process,an apparatus, a system, a device, a method, or a computer readablemedia. Several embodiments of the present invention are described below.

In one embodiment, a method for handling buffer under-runs during therecording of files to an optical disc is disclosed. The method includesreserving a track for recording a file system associated with recordingof one or more files on the optical disc. Then, the method moves torecord the one or more files onto the optical disc in a track thatlogically follows the reserved track. In case of a buffer under-run, themethod proceeds to close a current track and begin a following trackafter a gap, thus inserting a gap for each buffer under-run. Path tablesand directory descriptors of the file system are then written afterrecording the one or more files. A volume descriptor sequence of thefile system is recorded in the reserved track at a time after recordingthe path tables and the directory descriptor.

In another embodiment, a method for handling buffer under-run isdisclosed. The method includes reserving a track for recording a filesystem associated with recording of one or more files on an opticaldisc. After the reserved track, one or more files are recorded on theoptical disc in a track that logically follows the reserved track. Pathtables and a directory descriptor of the file system are then recordedafter recording the one or more files. A volume descriptor sequence ofthe file system is then recorded in the reserved track at a time afterrecording the path tables and the directory descriptor. Any bufferunder-runs are accounted for by closing a current track and thenresuming the recording on a next track.

In yet another embodiment, a computer readable media having programinstructions for handling buffer under-runs associated with therecording of one or more data files on a disc is disclosed. The computerreadable media includes: (a) program instructions for reserving a trackfor recording a file system associated with recording of one or moredata files on an optical disc; (b) program instructions for recordingthe one or more data files on the optical disc in a track that logicallyfollows the reserved track; (c) program instructions for closing a trackof the recording session upon an occurrence of a buffer under-run; (d)program instructions for recording a continuation of the data files in anext track of the recording session; (e) program instructions forrepeating the closing of the next track and the continuation of therecording of the data files upon the occurrence of additional bufferunder-runs; (f) program instructions for recording path tables and adirectory descriptor for the file system; and (g) program instructionsfor recording a volume descriptor sequence of the file system in thereserved track at a time after recording the path tables and thedirectory descriptor.

In still another embodiment, a method for handling buffer under-runs isdisclosed. The method includes: (a) reserving a track for recording afile system associated with recording of one or more files on an opticaldisc; (b) recording the one or more files on the optical disc in a trackthat logically follows the reserved track; (c) recording the file systemexcept for a volume descriptor sequence after recording the one or morefiles; and (d) recording the volume descriptor sequence of the filesystem in the reserved track. In this embodiment, the method furtherincludes: (i) closing a track during the recording of one or more filesonto the track when data to be recorded onto the optical disc isunavailable; (ii) recalculating a number of remaining files that wereunavailable to recorded; and (iii) resuming the recording of the numberof remaining files.

One benefit and advantage of the invention is higher recordingthroughput of finished and usable optical discs. Another benefit isfaster turn-around time for recording a usable optical disc. Anadditional benefit is the reduction in the cost of scrappingincompletely recorded and unusable optical discs. Yet another benefit isan increased practicality of optical disc recording at a higherrecording speed. It should be noted that the benefits buffer under-runhandling of the present invention are equally applicable to the ISO 9660standard, the Joliet CD-ROM Recording Specification, as wells as theUniversal Disk Format (UDF) standard, which is a subset of ISO 13346.The Joliet CD-ROM Recording Specification and all UDF standards arehereby incorporated by reference. Of course, other standards that sufferfrom buffer under-runs may also benefit from the invention claimedherein.

Other advantages of the invention will become apparent from thefollowing detailed description, taken in conjunction with theaccompanying drawings, illustrating by way of example the principles ofthe invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be readily understood by the followingdetailed description in conjunction with the accompanying drawings,wherein like reference numerals designate like structural elements.

FIG. 1A shows a prior art track on an optical disc resulting from arecording session in which a buffer under-run has occurred.

FIG. 1B shows a prior art track on an optical disc resulting from arecording session in which a buffer under-run has occurred, and theresulting difference created between a file address and the actual fileaddress as the result of the buffer under-run.

FIG. 2A shows the multiple tracks of data recorded as a result of threebuffer under-runs occurring during a recording session, with the volumedescriptor sequence pointing to the remainder of the file system,according to one embodiment of the invention.

FIG. 2B shows the path tables and a directory descriptor of the filesystem in accordance with one embodiment of the invention.

FIG. 3 is a diagram illustrating two tracks of data recorded as a resultof one buffer under-run that occurred during a recording session,according to one embodiment of the invention.

FIG. 4 shows a flow chart of a sequence of operations in accordance withone embodiment of the invention.

FIG. 5A is a diagram illustrating three tracks of data recorded as aresult of one buffer under-run that occurred during a recording session,according to another embodiment of the invention.

FIG. 5B is a diagram showing that the file system is written followingthe data, and once the file system has been written, a volume descriptorsequence (VDS) is written to the reserved track.

FIG. 5C illustrates yet another embodiment of the present invention,wherein the file system is written in the reserved track after all ofthe data has been written.

FIG. 6A shows a flowchart of a sequence of operations in accordance withan embodiment described with reference to FIGS. 5A-5C.

FIG. 6B shows a flowchart illustrating a method in which file system isgenerically defined to be in accordance with any selected recordingstandard (e.g., ISO 9660, UDF, etc.), in accordance with an embodimentdescribed with reference to FIGS. 5A-5C.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

An invention for handling buffer under-runs during a recording sessionon an optical disc is disclosed. In the following description, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. It will be understood, however,to one skilled in the art, that the present invention may be practicedwithout some or all of these specific details. In other instances, wellknown process operations have not been described in detail in order notto unnecessarily obscure the present invention.

FIG. 2A is a diagram 200 illustrating multiple tracks of data recordedas a result of three buffer under-runs that occurred during a recordingsession. In this embodiment, track 1 initially reserves sectors 1-15 in201 and then a volume descriptor sequence (VDS) 202 is written in sector16, or at least starting at sector 16. VDS 202 is configured to point tothe remainder of a file system 206, which is written at a location afterthe data recording for a given recording session is complete. It shouldbe understood that the VDS 202 is generally defined to encompass anynumber of recording standards that can benefit from the intelligenthandling of buffer under-runs. In this embodiment, the VDS 202 can bewritten into more than one sector in both the ISO 9660 standard and theUDF standard. In the case of the UDF standard, an extended areadescriptor is written to sector 16 and an anchor volume descriptor iswritten to sector 256. Preferably, the location at which the file system206 is to be written is ascertained by performing an estimate of thenumber of buffer under-runs that may occur during a given recordingsession. Depending upon the recording standard, the file system 206 cantake on different forms and can be referred to using different labels.For simplicity, we will make reference to file system 206 generically.

Once the VDS 202 is written, data 204 a, 204 b, 204 c and 204 d iswritten to track 1, track 2, track 3, and track 4. The data 204 a thatwas recorded to track 1 was stopped when a buffer under-run 212occurred. After a buffer under-run 212 occurs, a gap 210 representing apost-gap and a pre-gap will be required before track 2 is recorded.Because the file system 206 has not yet been written for the files thatwill be written to track 2, the addressing problem of the prior art willno longer occur. That is, the information in file system 206corresponding to the files written to track 2 will be written after theassociated files have been written to track 2. Thus, the file system 206will accurately reference the correct files throughout the session. In alike manner, the data 204 b will continue to be written to track 2 untilthe next buffer under-run 212. This buffer under-run 212, as well as thebuffer under-run 212 that will occur during the writing of track 3, willadvantageously not affect the addressing of files written as data 204.Once the data 204 d has been written to track 4, the file system 206will be complete.

During a read operation, the reading first refers to the VDS 202 whichhas a pointer 208 to the file system 206. As shown in FIG. 2B for a filesystem compliant to the ISO 9660 standard, the file system 206 includesa path table L 206 a, a path table M 206 b, and a directory descriptor206 c. Path table L 206 a and path table M 206 b contain the directorystructure for the files that are recorded to a disc. The directorydescriptor 206 c contains the logical block numbers corresponding to thelocations of the files in the directory. The pointer 208 is preferablyconfigured to point to the beginning of the path table L 206 a, the pathtable M 206 b, and the directory descriptor 206 c.

In either embodiment, the actual number of buffer under-runs that occurduring a recording session should be less than or equal to the estimatednumber of buffer under-runs. When this condition is satisfied, then thebuffer under-runs do not cause any addressing problems which require anadditional recording session. If the number of buffer under-runs is lessthan the estimated number, then the file system 206 is still recorded ata location correspondingly shifted by the estimated number of gaps 210.In this case, there will be one or more extra gaps 210 before the filesystem 206. If the number of buffer under-runs that occur during arecording session exceeds the estimated number of buffer under-runs,then the additional buffer under-runs may cause an addressing problem.Therefore, the number of buffer under-runs should be estimated asaccurately as possible.

In one embodiment, the estimation of the number of buffer under-runsduring an anticipated recording session can be performed by analyzingresults of a data transfer test. The data transfer test is performed onthe hardware that will be used as the source of the data to be recordedto the optical disc. In other embodiments, the estimation can be made bya user based on prior experience with similar hardware and resultingbuffer under-runs. In typical hardware configurations, it has beenobserved that an estimate of three buffer under-runs is sufficient tomaintain correct file system addressing during a recording session.

FIG. 3 is a diagram 300 illustrating two tracks of data recorded as aresult of one buffer under-run that occurred during a recording session,according to one embodiment of the invention. As is shown in FIG. 2A,track 1 initially reserves sectors 1-15 in 201, and then a VDS 202 iswritten in sector 16. VDS 202 is configured with a pointer 208 to thefile system 206, which is written at a location after the recording ofdata for a given recording session is complete.

Once the VDS 202 is written, data 204 a and 204 b is written to track 1and track 2. The data 204 a that was recorded to track 1 was stoppedwhen a buffer under-run 212 occurred. After a buffer under-run 212occurs, a gap 210 representing a post-gap and a pre-gap occurs beforetrack 2 is recorded. As discussed regarding FIG. 2A, because the filesystem 206 has not yet been written for the files that will be writtento track 2, the addressing problem of the prior art does not occur. Itshould also be noted that the VDS 202 should also correctly identifywhere the file system 206 is located. As such, the information in filesystem 206 corresponding to the files written to track 2 will be writtenafter the associated files for data 204 b have been written to track 2.Thus, the file system 206 will accurately reference the correct filesthroughout the session. Once the data 204 b has been written to track 2,the file system 206 will be complete.

In this embodiment, the estimated number of buffer under-runs 212 wasthree, but only one buffer under-run 212 occurred. Therefore, the filesystem 206 path tables and directory descriptor were recorded in alocation corresponding to three gaps 210, and the pointer 208 of the VDS202 corresponds to the actual location of the file system 206 (i.e.,when the estimated number of buffer under-runs is three). Since only onebuffer under-run 212 and one gap 210 occurred, there will necessarily betwo extra 300 sector gaps placed before the file system 206. Thiscreates an unnecessary gap 214, that represents an unused storagecapacity of approximately 1.5 Megabytes (MB). Although the recordingsession may lose approximately 1.5 MB of storage capacity, this loss isa minor sacrifice compared to the major benefit of successfullyconcluding a recording session on the first attempt. In addition,because typical optical discs have a capacity of about 640 MB, the lossof about 1.5 MB is very small, and is only critical if a user desires torecord the entire disc. In fact, a loss of 1.5 MB of storage capacity inthis example is only a relative loss of about 0.23% of the total storagecapacity of 640 MB on a typical optical disc.

FIG. 4 shows a flowchart of a sequence of operations in accordance withone embodiment of the invention. The method begins with operation 402where a disc drive is provided for writing data onto a disc. In oneembodiment, the disc drive is preferably one that is configured to writedata onto an optical disc. The optical disc is preferably one of acompact disc recordable (CDR), a compact disc rewritable (CD R/W), adigital video disc (DVD), and the like. The disc drive is configured tohave a buffer for storing data that is to be written to or read from theoptical disc. Other standard electronics, such as, a digital signalprocessor (DSP), and an actuator for moving a read/write head over adesired location over the optical disc are also required for recordingon an optical disc.

The method continues with operation 404 where a volume descriptorsequence (VDS) is recorded onto a disc for a recording session. As iswell known and described in the ISO 9660 standard, there may be morethan one VDS. Preferably, the VDS is recorded to sector 16. The methodnow continues with operation 406 where data for the recording session isrecorded following the recording of the VDS. The method proceeds withoperation 408 where a track is closed to stop the recording uponoccurrence of a buffer under-run. The method then proceeds to operation410 where the recording session continues in a next track after apost-gap and pre-gap. The method finishes in operation 412 by writingthe file system in a location that is after the recorded data. In thisembodiment, the VDS has a pointer to the file system.

FIG. 5A is a diagram 500 illustrating three tracks of data recorded as aresult of one buffer under-run that occurred during a recording session,according to another embodiment of the invention. Track 1 is a reservedtrack 250. After the reserved track 250, data 204 a is written in track2 up until a buffer under-run 212 occurs. At this point, a gap 210 isdefined before the data 204 b is written in track 3. The writing of thedata 204 b will continue up to a point 252 where there is no more datato be written for a particular session. Before the track 3 is closed,the file system 206 is written following the data as shown in FIG. 5B,diagram 500′. Once the file system 206 has been written, a VDS 202 iswritten to the reserved track 250, which is in track 1. The remainingreserved sectors 250 a and 250 b will remain on either side of the VDS202. VDS 202 is configured with a pointer 208 to the file system 206,which is written at a location after the recording of data 204 b for agiven recording session is complete.

Before the VDS 202 is written, data 204 a and 204 b is written to track2 and track 3. The data 204 a that was recorded to track 2 was stoppedwhen a buffer under-run 212 occurred. After a buffer under-run 212occurs, a gap 210 representing a post-gap and a pre-gap occurs beforetrack 3 is recorded. Because the file system 206 has not yet beenwritten for the files that will be written to track 3, the addressingproblem of the prior art does not occur. As such, the information offile system 206 corresponding to the files written to track 3 will bewritten after the associated files for data 204 b have been written totrack 3. Thus, the file system 206 will accurately reference the correctfiles throughout the session. Once the data 204 b has been written totrack 3, the file system 206 will be complete. Then VDS 202 will berecorded in sector 16 of the reserved track to correctly identify wherethe file system 206 is located. In this embodiment, there is no need forbuffer under-run estimates before writing the VDS 202 and the filesystem 206. The pointer 208 in VDS 202 will thus point to the correctaddress of the file system 206 and incorporate any number of gaps 210corresponding to the actual number of buffer under-runs that occurduring the recording session.

FIG. 5C illustrates yet another embodiment of the present invention,wherein the file system 206 is written in track 1 after all of the data204 has been written. For instance, once the data 204 a and 204 b hasbeen written up to a point 254, the file system 206 can be written atany address within the reserved track 250 after sector 16. Once the filesystem 206 is written, reserved sectors 250 b may remain between thefile system 206 and the VDS 202, and reserved sectors 250 a will remainbefore the VDS 202. As mentioned above, the VDS 202 is preferablywritten in sector 16, and sectors 1-15 defined by reserved sectors 250 awill remain unused.

FIG. 6A shows a flowchart of a sequence of operations in accordance withan embodiment described with reference to FIGS. 5A-5C. The method beginswith operation 602 where a disc drive is provided for writing data ontoa disc. As previously discussed for FIG. 4, the disc drive is preferablyconfigured to write data onto an optical disc, preferably one of acompact disc recordable (CDR), a compact disc rewritable (CD R/W), adigital video disc (DVD), and the like. The disc drive is configured tohave a buffer for storing data that is to be written to or read from theoptical disc. The method in this embodiment reserves a track on theoptical disc that will not be available for file data recording.

The method continues with operation 604 where data is recorded duringthe recording session on the tracks other than the reserved track. Themethod proceeds with operation 606 where a track is closed to stop therecording up on occurrence of a buffer under-run. The method continueswith operation 608 where a continuation of the recording session resumesin a new track after a post-gap and pre-gap. The method then moves tooperation 610 where path tables and the directory descriptor of a filesystem are recorded. The file system may in one embodiment be written inthe reserved track to save the remaining tracks entirely for data.Alternatively, in another embodiment the file system path tables anddirectory descriptor may be written following the data. The methodfinishes with the operation 612 of recording a VDS onto the reservedtrack on the disc, the VDS having a pointer to the file system. In thisembodiment the pointer in the VDS will point to the correct address ofthe file system regardless of the number of buffer under-runs thatactually occur, without requiring any possibly mistaken estimates forthe number of buffer under-runs that will occur during the recordingsession.

FIG. 6B shows a flowchart illustrating a method in which file system isgenerically defined to be in accordance with any selected recordingstandard (e.g., ISO 9660, UDF, etc.), in accordance with an embodimentdescribed with reference to FIGS. 5A-5C. The method in this embodimentbegins with operation 613 where a disc drive is provided for writingdata onto a disc. As previously discussed for FIG. 4, the disc drive ispreferably configured to write data onto an optical disc, preferably oneof a compact disc recordable (CDR), a compact disc rewritable (CD R/W),a digital video disc (DVD), and the like. The disc drive is configuredto have a buffer for storing data that is to be written to or read fromthe optical disc.

The method in this embodiment reserves a track on the optical disc thatwill not be available for file data recording. The method continues withoperation 614 where data is recorded during the recording session on thetracks other than the reserved track. The method proceeds with operation616 where a track is closed to stop the recording upon occurrence of abuffer under-run. The method continues with operation 618 where acontinuation of the recording session resumes in a new track after apost-gap and pre-gap. The sequence continues for any number of bufferunder-runs. The method then moves to operation 620 where a file systemis recorded. The file system may in one embodiment be written in thereserved track to save the remaining tracks entirely for data.Alternatively, in another embodiment the file system may be writtenfollowing the data. In any case, the file system may represent theentire file system or at least part of the file system, which may bedefined under any number of recording standards.

The method finishes with the operation 622 of recording a VDS onto thereserved track on the disc, the VDS has a pointer to the file system. Inthis embodiment the pointer in the VDS will point to the correct addressof the file system regardless of the number of buffer under-runs thatactually occur, without requiring any possibly mistaken estimates forthe number of buffer under-runs that will occur during the recordingsession. Again, the VDS can be defined under any number of recordingstandards, such as, ISO 9660 and UDF.

One benefit and advantage of the invention is higher recordingthroughput of finished and usable optical discs. Another benefit isfaster turn-around time for recording a usable optical disc. Anadditional benefit is the reduction in the cost of scrappingincompletely recorded and unusable optical discs. Yet another benefit isan increased practicality of optical disc recording at a higherrecording speed while obtaining data from a hard drive and a buffermemory with limited memory access speeds.

Examples of variations within the scope of this invention include, butare not limited to, the following: a volume descriptor sequence addresspointer for more than three buffer under-runs during a recordingsession, a volume descriptor sequence not located in sector 16, multiplevolume descriptors, multiple file systems, file systems compliant toother standards, such as UDF, and recording sessions with gaps less thanor greater than 300 sectors between tracks.

The invention may employ various computer-implemented operationsinvolving data stored in computer systems. These operations are thoserequiring physical manipulation of physical quantities. Usually, thoughnot necessarily, these quantities take the form of electrical ormagnetic signals capable of being stored, transferred, combined,compared, and otherwise manipulated. Further, the manipulationsperformed are often referred to in terms, such as producing,identifying, determining, or comparing.

Any of the operations described herein that form part of the inventionare useful machine operations. The invention also relates to a device oran apparatus for performing these operations. The apparatus may bespecially constructed for the required purposes, or it may be a generalpurpose computer selectively activated or configured by a computerprogram stored in the computer. In particular, various general purposemachines may be used with computer programs written in accordance withthe teachings herein, or it may be more convenient to construct a morespecialized apparatus to perform the required operations.

The invention can also be embodied as computer readable code on acomputer readable medium. The computer readable medium is any datastorage device that can store data, which can thereafter be read by acomputer system. Examples of the computer readable medium includeread-only memory, random-access memory, CD-ROMs, CDRs, CD-RWs, magnetictapes, and other optical data storage devices. The computer readablemedium can also be distributed over network coupled computer systems sothat the computer readable code is stored and executed in a distributedfashion.

The exemplary embodiments described herein are for purposes ofillustration and are not intended to be limiting. Accordingly, thoseskilled in the art will recognize that the present embodiments are to beconsidered as illustrative and not restrictive, and the invention is notto be limited to the details given herein, but may be modified withinthe scope and equivalents of the appended claims.

What is claimed is:
 1. A method for handling buffer under-run,comprising: reserving a track for recording a file system associatedwith recording of one or more files on an optical disc; recording theone or more files on the optical disc in a track that logically followsthe reserved track; recording path tables and a directory descriptor ofthe file system after recording the one or more files; and recording avolume descriptor sequence of the file system in the reserved track at atime after recording the path tables and the directory descriptor; andclosing a track during the recording of one or more files onto the trackwhen data to be recorded onto the optical disc is unavailable.
 2. Themethod recited in claim 1, further comprising: recalculating a number ofremaining files that were unavailable to be recorded; and resuming therecording of the number of remaining files.
 3. The method recited inclaim 2, further comprising: recalculating a logical block number foreach of the number of remaining files.
 4. The method recited in claim 1,wherein the optical disc is one of a compact disc recordable (CDR) disc,a compact disc rewritable (CD-RW) disc, and a digital video disc (DVD)disc.
 5. The method recited in claim 1, further comprising: recordingpath tables and directory descriptor of the file system in a track thatlogically follows the reserved track.
 6. A method for handling bufferunder-run; comprising: reserving a track for recording a file systemassociated with recording of one or more files on an optical disc;recording the one or more files on the optical disc in a track thatlogically follows the reserved track; recording path tables and adirectory descriptor of the file system after recording the one or morefiles; recording a volume descriptor sequence of the file system in thereserved track at a time after recording the path tables and thedirectory descriptor; and recording path tables and a directorydescriptor of the file system in the track reserved for recording a filesystem.
 7. A computer readable media having program instructions forhandling buffer under-runs associated with the recording of one or moredata files on a disc, the computer readable media comprising: programinstructions for reserving a track for recording a file systemassociated with recording of one or more data files on an optical disc;program instructions for recording the one or more data files on theoptical disc in a track that logically follows the reserved track;program instructions for closing a track of the recording session uponan occurrence of a buffer under-run; program instructions for recordinga continuation of the data files in a next track of the recordingsession; program instructions for repeating the closing of the nexttrack and the continuation of the recording of the data files upon theoccurrence of additional buffer under-runs; program instructions forrecording path tables and a directory descriptor for the file system;and program instructions for recording a volume descriptor sequence ofthe file system in the reserved track at a time after recording the pathtables and the directory descriptor.
 8. A computer readable media asrecited in claim 7, wherein a buffer under-run occurs when a rate ofrecording to the disc exceeds a rate of replenishing a buffer source. 9.A computer readable media as recited in claim 7, further comprising:program instructions for keeping track of logical block numbers for datafiles recorded onto the disc during the recording session.
 10. Acomputer readable media as recited in claim 7, wherein the file systemis written in a format that is compatible with one of an ISO 9660 andUDF.
 11. A computer readable media as recited in claim 7, wherein thefile system follows the data files.
 12. A method for handling bufferunder-run, comprising: reserving a track for recording a file systemassociated with recording of one or more files on an optical disc;recording the one or more files on the optical disc in a track thatlogically follows the reserved track; recording the file system exceptfor a volume descriptor sequence after recording the one or more files;recording the volume descriptor sequence of the file system in thereserved track; and closing a track during the recording of one or morefiles onto the track when data to be recorded onto the optical disc isunavailable.
 13. The method recited in claim 12, further comprising:recalculating a number of remaining files that were unavailable torecorded; and resuming the recording of the number of remaining files.14. The method recited in claim 13, further comprising: recalculating alogical block number for each of the number of remaining files.
 15. Themethod recited in claim 12, wherein the optical disc is one of a compactdisc recordable (CDR) disc, a compact disc rewritable (CD-RW) disc, anda digital video disc (DVD) disc.
 16. A method for handling bufferunder-run, comprising: reserving a track for recording a file systemassociated with recording of one or more files on an optical disc;recording the one or more files on the optical disc in a track thatlogically follows the reserved track; recording a volume descriptorsequence of the file system in the reserved track after recording theone or more files; recording path tables and a directory descriptor ofthe file system after recording the volume descriptor sequence of thefile system; and closing a track during the recording of one or morefiles onto the track when data to be recorded onto the optical disc isunavailable.
 17. The method recited in claim 16, further comprising:recalculating a number of remaining files that were unavailable to berecorded; and resuming the recording of the number of remaining files.18. The method recited in claim 17, further comprising: recalculating alogical block number for each of the number of remaining files.